package cn.hls.dao;

import java.util.List;
import java.util.Map;

import cn.hls.entity.Org;
import cn.hls.entity.vo.ExtTree;
import cn.hls.entity.vo.PageInfo;

/**
 * @fileName: CityDao.java
 * @descrption: 组织机构数据接口类
 * @author : yinghui.zhang
 * @Email: uuhui@163.com
 * @date 2015-5-1
 * @version 1.0
 */
public interface OrgDao extends BaseDao<Org> {
	/**
	 * 加载子组织机构内容
	 * 
	 * @param org
	 *            组织机构对象
	 * @param nodeId
	 *            节点编号
	 * @return List<ExtTree>
	 */
	List<ExtTree> loadChildOrgInfo(Org org, Object nodeId) throws Exception;

	/**
	 * 分页加载组织机构信息
	 * 
	 * @param entity
	 *            组织机构参数
	 * @param page
	 *            分页参数
	 * @return PageInfo<Org>
	 */
	PageInfo<Org> loadOrgInfo(Org entity, PageInfo<Org> page) throws Exception;

	/**
	 * 更新组织机构的序号
	 * 
	 * @param ids
	 *            编号
	 */
	void updateOrgSort(String ids) throws Exception;

	/**
	 * 根据编号删除组织机构信息
	 * 
	 * @param id
	 *            编号
	 * @return String
	 * @throws Exception
	 *             异常
	 */

	String deleteOrg(Long id) throws Exception;

	/**
	 * 根据组织机构名称或代码查询组织机构信息
	 * 
	 * @param name  名称
	 * @param code  代码
	 * @param parentId 上级编号代码     
	 * @return Org
	 * @throws Exception
	 *             异常
	 */
	Org findOrg(String name, String code,Long parentId) throws Exception;
	
	/**
	 * 获取组织名称 编号键值对信息
	 * @return Map<String,Long>
	 * @throws Exception 操作数据库异常
	 */
	Map<String ,Long> loadOrgInfo()throws Exception;

}
